
import 'dart:convert';

import 'package:flutter/services.dart';

abstract class AppConfig {
  static String _configFileLocation = "app.config.json";
  static Map<String, dynamic?> _appConfig = Map<String, String?>();

  //  同步等待初始化完毕
  static initSync() async {
    //  读取配置文件
    String configString = await rootBundle.loadString(_configFileLocation);

    _appConfig = jsonDecode(configString);
    print('全部配置文件读取完毕: \n$_appConfig');
  }

  //  异步初始化读取文件
  static init() {
    //  读取配置文件
    rootBundle.loadString(_configFileLocation)
        .then((configString){
          _appConfig = jsonDecode(configString);
          print('全部配置文件读取完毕: \n$_appConfig');
        })
        .catchError((err) {
          print('读取配置文件失败: $err');
        })
    ;
  }

  //  设置全部配置
  static put(String key, String value) {
    _appConfig[key] = value;
  }

  //  获取配置属性
  static dynamic get(String key) {
    return _appConfig[key];
  }

  static String getAppName() {
    String? appName = _appConfig['appName'];
    return appName != null ? appName : "App name is null";
  }

}

